/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */
package br.com.chain.id;

import br.com.Abstracts.AbstractTratadorLexicoToken;
import br.com.Erros.TratadorErros;
import br.com.model.Token;

/**
 *
 * @author mariorsjr
 */
public class Id extends AbstractTratadorLexicoToken {

    public void isValido(Token token) { 
        if (token.getLexema().length() < 15) {
            if (Character.isLetter(token.getLexema().charAt(0))) {
                if (token.getLexema().matches("[\\w]*")) {
                    token.setToken("Identificador");
                } else if (this.sucessor == null) {
                    this.setProximoConjunto(new TratadorErros());
                    token.setToken("Erro 1");
                    this.sucessor.tratador(token);
                }
            } else if (this.sucessor == null) {
                this.setProximoConjunto(new TratadorErros());
                token.setToken("Erro 2");
                this.sucessor.tratador(token);
            }

        } else if (this.sucessor == null) {
            this.setProximoConjunto(new TratadorErros());
            token.setToken("Erro 3");
            this.sucessor.tratador(token);
        }
    }
}
